/*	--- XML简介 --- 


XML是【可扩展标记语言（eXtensible Markup Language）】的缩写。

它是是一种【数据表示格式】，可以【描述非常复杂的数据结构】，常用于【传输和存储数据】。


例如，一个描述书籍的【XML文档】可能如下：

	<?xml version="1.0" encoding="UTF-8" ?>
	<!DOCTYPE note SYSTEM "book.dtd">
	<book id="1">
	    <name>Java核心技术</name>
	    <author>Cay S. Horstmann</author>
	    <isbn lang="CN">1234567</isbn>
	    <tags>
	        <tag>Java</tag>
	        <tag>Network</tag>
	    </tags>
	    <pubDate/>
	</book>


XML有几个特点：
	1. 是【纯文本】，默认使用UTF-8编码，
	2. 是【可嵌套】，适合表示结构化数据。

如果把【XML内容】存为文件，那么它就是【一个XML文件】，例如book.xml。

此外，【XML内容】经常通过【网络】作为【消息传输】。


--------------------------------------


#	XML的结构

XML有固定的结构，首行必定是<?xml version="1.0"?>，可以加上【可选的编码】。

紧接着，如果以类似
	<!DOCTYPE note SYSTEM "book.dtd">
声明的是【文档定义类型（DTD：Document Type Definition）】，DTD是可选的。

------------------

接下来是XML的文档内容，一个XML文档有且仅有【一个根元素】，根元素可以包含任意个子元素，元素可以包含属性，例如，<isbn lang="CN">1234567</isbn>包含一个属性lang="CN"，且元素必须正确嵌套。

如果是【空元素】，可以用 <tag/> 表示。

由于使用了【<、>以及引号等】标识符,如果内容出现了【特殊符号】,需要使用【&???;】表示转义。


例如，Java<tm>必须写成：

	<name>Java&lt;tm&gt;</name>


---------


常见的特殊字符如下：

	字符		表示
	<		&lt;
	>		&gt;
	&		&amp;
	"		&quot;
	'		&apos;

---------


格式正确的XML（Well Formed）是指XML的格式是正确的，可以被【解析器】正常读取。

而【合法的XML】是指，不但XML格式正确，而且它的数据结构可以被【DTD或者XSD】验证。

DTD, Document Type Definition

DTD文档可以指定一系列规则，例如：
	· 根元素必须是book
	· book元素必须包含name，author等指定元素
	· isbn元素必须包含属性lang
	· ...


Q: 如何验证XML文件的正确性呢？
A: 最简单的方式是通过【浏览器】验证。可以直接把【XML文件】拖拽到【浏览器窗口】，如果格式错误，浏览器会报错。


和结构类似的HTML不同，浏览器对HTML有一定的“容错性”，缺少关闭标签也可以被解析，但【XML】要求【严格的格式】，任何没有正确嵌套的标签都会导致错误。
(HTML具有容错性; XML具有严谨性; )


XML是一个技术体系，除了我们经常用到的【XML文档】本身外，XML还支持：
	· DTD和XSD：验证【XML结构】和【数据】是否有效;
	· Namespace：【XML节点+属性】的名字空间;
	· XSLT：把【XML】转化为【另一种文本】;
	· XPath：一种【XML节点查询语言】;
	· ...


实际上，XML的这些相关技术实现起来非常复杂，在实际应用中很少用到，通常了解一下就可以了。



====================================================


#	----- XML简介 ----- 

1. XML使用【嵌套结构的数据表示方式】，支持【格式验证】;

2. XML常用于【配置文件】、【网络消息传输】等。

3. 


xml模版
	// <?xml version版本 encoding编码>

	<?xml version="1.0" encoding="UTF-8" ?>
	<book id="1">
	    <name>Java核心技术</name>
	    <author>Cay S. Horstmann</author>
	    <isbn lang="CN">1234567</isbn>
	    <tags>
	        <tag>Java</tag>
	        <tag>Network</tag>
	    </tags>
	    <pubDate/>
	</book>



*/